Here is how I will deal with him:
he shows up smelly, send him home to shower
if he comes back the same, send him home again and tell him if he
shows up the next day the same way, he'll be fired
next day, he shows up still smelly, fire his ass. 
If your boss is too much of a coward to fire him, update your
resume and start looking for a new job. If you find one, tender
resignation.